package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 睡眠记录对象 bus_sleep_record
 *
 * @author wuxiao
 * @date 2025-09-28
 */
public class BusSleepRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @Excel(name = "主键ID")
    private Long id;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 填报日期（前一天睡眠） */
    @Excel(name = "填报日期", readConverterExp = "前=一天睡眠")
    private Date recordDate;

    /** 上床时间 */
    @Excel(name = "上床时间")
    private String bedTime;

    /** 起床时间 */
    @Excel(name = "起床时间")
    private String wakeTime;

    /** 入睡耗时（分钟） */
    @Excel(name = "入睡耗时", readConverterExp = "分=钟")
    private Double sleepLatency;

    /** 夜间醒来次数 */
    @Excel(name = "夜间醒来次数")
    private Integer nightWakings;

    /** 实际睡眠时长（分钟） */
    @Excel(name = "实际睡眠时长", readConverterExp = "分=钟")
    private Double sleepDuration;

    /** 是否有补偿行为(0=否,1=是) */
    @Excel(name = "是否有补偿行为(0=否,1=是)")
    private String compensationBehavior;

    /** 是否有努力入睡行为(0=否,1=是) */
    @Excel(name = "是否有努力入睡行为(0=否,1=是)")
    private String forcedSleep;

    /** 是否执念8小时睡眠(0=否,1=是) */
    @Excel(name = "是否执念8小时睡眠(0=否,1=是)")
    private String eightHoursPursuit;

    /** 是否缺乏运动(0=否,1=是) */
    @Excel(name = "是否缺乏运动(0=否,1=是)")
    private String lackOfExercise;

    /** 是否过度关注症状(0=否,1=是) */
    @Excel(name = "是否过度关注症状(0=否,1=是)")
    private String symptomFocus;

    /** 心情状态（平静/焦虑/低落） */
    @Excel(name = "心情状态", readConverterExp = "平=静/焦虑/低落")
    private String moodState;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public void setRecordDate(Date recordDate)
    {
        this.recordDate = recordDate;
    }

    public Date getRecordDate()
    {
        return recordDate;
    }

    public void setBedTime(String bedTime)
    {
        this.bedTime = bedTime;
    }

    public String getBedTime()
    {
        return bedTime;
    }

    public void setWakeTime(String wakeTime)
    {
        this.wakeTime = wakeTime;
    }

    public String getWakeTime()
    {
        return wakeTime;
    }


    public void setNightWakings(Integer nightWakings)
    {
        this.nightWakings = nightWakings;
    }

    public Integer getNightWakings()
    {
        return nightWakings;
    }

    public Double getSleepLatency() {
        return sleepLatency;
    }

    public void setSleepLatency(Double sleepLatency) {
        this.sleepLatency = sleepLatency;
    }

    public Double getSleepDuration() {
        return sleepDuration;
    }

    public void setSleepDuration(Double sleepDuration) {
        this.sleepDuration = sleepDuration;
    }

    public void setCompensationBehavior(String compensationBehavior)
    {
        this.compensationBehavior = compensationBehavior;
    }

    public String getCompensationBehavior()
    {
        return compensationBehavior;
    }

    public void setForcedSleep(String forcedSleep)
    {
        this.forcedSleep = forcedSleep;
    }

    public String getForcedSleep()
    {
        return forcedSleep;
    }

    public void setEightHoursPursuit(String eightHoursPursuit)
    {
        this.eightHoursPursuit = eightHoursPursuit;
    }

    public String getEightHoursPursuit()
    {
        return eightHoursPursuit;
    }

    public void setLackOfExercise(String lackOfExercise)
    {
        this.lackOfExercise = lackOfExercise;
    }

    public String getLackOfExercise()
    {
        return lackOfExercise;
    }

    public void setSymptomFocus(String symptomFocus)
    {
        this.symptomFocus = symptomFocus;
    }

    public String getSymptomFocus()
    {
        return symptomFocus;
    }

    public void setMoodState(String moodState)
    {
        this.moodState = moodState;
    }

    public String getMoodState()
    {
        return moodState;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("recordDate", getRecordDate())
            .append("bedTime", getBedTime())
            .append("wakeTime", getWakeTime())
            .append("sleepLatency", getSleepLatency())
            .append("nightWakings", getNightWakings())
            .append("sleepDuration", getSleepDuration())
            .append("compensationBehavior", getCompensationBehavior())
            .append("forcedSleep", getForcedSleep())
            .append("eightHoursPursuit", getEightHoursPursuit())
            .append("lackOfExercise", getLackOfExercise())
            .append("symptomFocus", getSymptomFocus())
            .append("moodState", getMoodState())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
